package com.zpark.gmd.jushanpay.common.domain;


/**
 * 异常编码 0成功、-1熔断、 -2 标准参数校验不通过 -3会话超时
 * 前两位:服务标识
 * 中间两位:模块标识
 * 后两位:异常标识
 */
public enum CommonErrorCode implements ErrorCode {

    ////////////////////////////////////公用异常编码 //////////////////////////

    E_200201(200101,"传入对象为空"),
    E_200202(200102,"参数为空"),
    E_200203(200103,"手机号已存在"),
    E_200204(200104,"租户为管理员，不可删除"),
    E_200205(200105,"账号被其他租户使用，不可删除"),
    E_200206(200106,"角色被使用中，不可删除"),
    E_200207(200107,"查询结果为空"),
    E_200208(200108,"账号不存在"),
    E_200209(200109,"支付渠道参数不能为空"),
    E_200210(200110,"应用未绑定平台渠道"),
    E_200211(200111,"商户下未设置根门店"),
    E_200212(200112,"商户应用支持的聚合平台支付渠道不能为空"),
    E_200213(200113,"支付金额不能为空"),
    E_200214(200114,"openId不能为空"),
    E_200215(200115,"获取支付状态超时"),
    E_200216(200116,"授权码为空"),
    E_200217(200117,"订单标题为空"),
    E_200218(200118,"订单金额为空"),
    E_200219(200119,"订单金额格式有误"),
    E_200220(200120,"授权码格式有误"),
    E_200221(200121,"角色为空"),
    E_200222(200122,"角色设置权限时，传入的权限为空"),
    E_200223(200123,"未查到权限为空"),
    E_200224(200124,"手机号格式不正确"),
    E_200225(200125,"用户名已存在"),
    E_200226(200126,"用户名或密码不正确"),
    E_200227(200127,"商户不存在"),
    E_200228(200128,"员工不存在"),
    E_200229(200129,"门店参数有误"),

    E_200230(200130,"手机号为空"),
    E_200231(200131,"用户名为空"),
    E_200232(200132,"密码为空"),
    E_200233(200133,"查询不到该门店"),
    E_200234(200134,"角色编码在同一租户中已存在，不可重复"),
    E_200235(200135,"企业名称不能为空"),
    E_200236(200136,"商户还未通过认证审核，不能创建应用"),

    /**
     * 传入参数与接口不匹配
     */
    E_100101(100101,"传入参数与接口不匹配"),
    /**
     * 验证码错误
     */
    E_100102(100102,"验证码错误"),
    /**
     * 验证码为空
     */
    E_100103(100103,"验证码为空"),
    /**
     * 查询结果为空
     */
    E_100104(100104,"查询结果为空"),
    /**
     * ID格式不正确或超出Long存储范围
     */
    E_100105(100105,"ID格式不正确或超出Long存储范围"),
    /**
     * 上传出错
     */
    E_100106(100106,"上传错误"),
    E_100107(100107,"发送验证码错误"),

    ////////////////////////////////////网关服务异常编码11//////////////////////////

    ////////////////////////////////////UAA服务异常编码12 //////////////////////////


    ////////////////////////////////////统一账号服务异常编码 13//////////////////////////


    ////////////////////////////////////c端用户服务异常编码 14//////////////////////////

    ////////////////////////////////////特殊异常编码/////////////////////////////////////
    E_999991(999991,"调用微服务-授权服务 被熔断"),
    E_999992(999992,"调用微服务-用户服务 被熔断"),
    E_999993(999993,"调用微服务-资源服务 被熔断"),
    E_999994(999994,"调用微服务-同步服务 被熔断"),

    E_999910(999910,"调用微服务-没有传tenantId租户Id"),
    E_999911(999911,"调用微服务-没有json-token令牌"),
    E_999912(999912,"调用微服务-json-token令牌解析有误"),
    E_999913(999913,"调用微服务-json-token令牌有误-没有当前租户信息"),
    E_999914(999914,"调用微服务-json-token令牌有误-该租户下没有权限信息"),

    E_NO_AUTHORITY(999997,"没有访问权限"),
    CUSTOM(999998,"自定义异常"),
    /**
     * 未知错误
     */
    UNKOWN(999999,"未知错误");


    private int code;
    private String desc;

    public int getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    private CommonErrorCode(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }


    public static CommonErrorCode setErrorCode(int code) {
        for (CommonErrorCode errorCode : CommonErrorCode.values()) {
            if (errorCode.getCode()==code) {
                return errorCode;
            }
        }
        return null;
    }
}